Paint 画笔的使用
前言
最近一直在复习自定义View的内容,重新了解复习,前段时间从源码角度重新理解view的绘制流程,现在重新看自定义View有更多的收获。目前重新整理归纳了Paint的用法。以下做一个介绍和总结。
还有一个重点是最近在自定义view 的过程中终于明白了绘制文字的奥妙,以前总是觉得绘制文字的时候不能居中,画出来的控件不美观,原来是文字绘制有文字线谱,你得获得文字基线才能居中文字,想明白这个问题就往下哈好理解吧。
Paint 画笔的使用一般都在以下两个方面:
- 负责绘制获取图形,路径相关的内容
|
|
注意:冒多出来的那块区域就是线帽!就相当于给原来的直线加上一个帽子一样,所以叫线帽
|
|
- 负责设置文字相关
|
|
例子:
|
|
相信大家在自定义View绘制文字的过程中都或多或少觉得文字绘制的位置不对,下面就是原因
cavas.drawText() 的方法需要的 x ,y 的参数是基本 baseline 的,这是因为draw 通过baseline 的。什么是 baseline?
在 Paint.FontMetrics 和 Paint.FontMetricsInt 中内部存在top,ascent,desent, bottom, leading属性。而我们需要通过这几个参数求出baseline,下面是求解过程和最终的结果使用
Paint 绘制文字需要了解文字线谱,才能再自定义 view 绘制文本的时候正确居中文字。需要得出最终的baseline的,这个值才是最后要文本绘制的值,计算过程如下:
其中涉及的 Paint.FontMetrics Paint.FontMetricsInt
|
|